import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
//下面这三个导入之后再组件中就不需要手动写import了
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  server:{
    host:'0.0.0.0',
    open:true,
    strictPort:false,
    https:false,
    
    proxy:{
      '/api': {
        target: 'http://192.168.2.31:9901', // 目标服务器的地址
        changeOrigin: true, // 是否改变请求源头
        rewrite: (path) => path.replace(/^\/api/, ''), // 去除路径中的 /api 部分
      },
    
    },
    cors: true
  },
  plugins: [
    vue({
      template: {
        compilerOptions: {
          // 忽略 v-for 的 key 错误
          isCustomElement: (tag) => tag === 'rect',
        },
      },
    }),
    AutoImport({ // 自动引入，不需要手动去写import
      // 这里可以不需要写import调用大部分vue/vue-router/pinia方法（记住是大部分）
      imports: ['vue', 'vue-router', 'pinia'],
      // 是用于自动按需引入 ElementPlus 组件的解析器，通常与 unplugin-vue-components 插件一起使用
      resolvers: [ElementPlusResolver()],
      // 会自动生成eslint规则，防止eslint报错，后续selint配置的时候会讲到
      eslintrc: {
        enabled: true
      }
    }),
    Components({ // 按需引入，避免没使用的组件也打包
      resolvers: [ElementPlusResolver({ importStyle: 'sass' })]
    })
  ],
  css: {
    preprocessorOptions: {
      scss: {
        // additionalData: `@import "@/global.scss";`
      }
    }
  },
  esbuild: {//打包的时候去除掉调试的代码
      drop: ["console", "debugger"],
    },
  resolve: {
    alias: [
      {
        find: '@',
        replacement: resolve(__dirname, 'src')
      }
    ]
  }

})
